package com.joker.aigc.tools.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.joker.aigc.tools.domian.dto.VideoDetailDTO;
import com.joker.aigc.tools.domian.dto.VideoListDTO;
import com.joker.aigc.tools.domian.po.VideosPO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 视频表Mapper接口
 * @author system
 * @date 2023-12-01
 */
@Mapper
public interface VideosMapper extends BaseMapper<VideosPO> {
    
    /**
     * 获取视频详情（包含分类和演员信息）
     * @param videoId 视频ID
     * @return 视频详情
     */
    VideoDetailDTO getVideoDetailById(@Param("videoId") Long videoId);
    
    /**
     * 分页查询视频列表
     * @param page 分页参数
     * @param categoryId 分类ID
     * @param subCategoryId 子分类ID
     * @return 视频列表
     */
    IPage<VideoListDTO> getVideoList(Page<VideoListDTO> page, 
                                    @Param("categoryId") Long categoryId, 
                                    @Param("subCategoryId") Long subCategoryId);
    
    /**
     * 搜索视频
     * @param page 分页参数
     * @param keyword 关键词
     * @return 视频列表
     */
    IPage<VideoListDTO> searchVideos(Page<VideoListDTO> page, @Param("keyword") String keyword);
} 